package com.mls.fivedistrict.dao;

import com.mls.fivedistrict.pojo.Integral;
import com.mls.fivedistrict.pojo.ParadropProperty;
import com.mls.fivedistrict.pojo.Property;
import com.mls.fivedistrict.pojo.PropertyExample;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface PropertyMapper {
    long countByExample(PropertyExample example);

    int deleteByExample(PropertyExample example);

    int deleteByPrimaryKey(Long id);

    int insert(Property record);

    int insertSelective(Property record);

    List<Property> selectByExample(PropertyExample example);

    Property selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") Property record, @Param("example") PropertyExample example);

    int updateByExample(@Param("record") Property record, @Param("example") PropertyExample example);

    int updateByPrimaryKeySelective(Property record);

    int updateByPrimaryKey(Property record);

    Integral selectIntegral(Long integral_id);

    BigDecimal getDwqSum(Long integralId);

    List<Long> getUserIds(Long integralId);


    int updatePropertyBashByParadrop(List<ParadropProperty> list);

    void insertBashByParadrop(List<ParadropProperty> list);

    int editPropertyByRecord(@Param("params") Map params);

    int reducePropertyTotal(@Param("params") Map params);

    int increamentPropertyTotal(@Param("params") Map params);
}